Masking Tool

ABSTRACT

A system for controlling effects performed on an image includes a digital camera having a display that displays the image. A masking tool positions a graphical representation on the display, the graphical representation defining a portion of the image that is altered when the effects are subsequently applied to the image. The masking tool is positioned over a masked portion of an image and an effect is applied. The effect is applied on the image outside the masked portion.

CROSS REFERENCES RELATED TO THE APPLICATION

This application is a continuation of U.S. patent application Ser. No. 11/273,055 filed Nov. 14, 2005, now U.S. Pat. No. ______, which claims the benefit of U.S. patent application Ser. No. 09/782,235 filed Feb. 12, 2001, now U.S. Pat. No. 7,027,663, which claims the benefit of U.S. Provisional Application No. 60/181,778 filed Feb. 11, 2000.

FIELD OF THE INVENTION

This invention relates generally to graphical editing technologies, and more particularly, to controlling applications of effects by using masking tools.

BACKGROUND OF THE INVENTION

With the increasing popularity of computing and the use of the Internet in many fields, the ability to control computers and similar devices in a simple, convenient manner has become extremely important. However, existing interfaces to computers and similar devices can be cumbersome and complicated.

In particular, many users of graphical editing programs would benefit from an improved interface used to control the application of various special effects onto an image. For example, graphical editing programs would benefit from improved control of the application of the effects with respect to the intensity and the area of the image that is being subjected to modification by application of the effect

Some software applications implement mask tools that are similar to applying a cut out or stencil to protecting area of the underlying image. They also implement control that applies effects only to a localized area, similar to a street paint tool.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate these embodiments.

FIG. 1A illustrates an exemplary system implemented with an embodiment of the invention.

FIG. 1B illustrates a network overview of the present invention.

FIG. 1C illustrates a basic processor of the present invention.

FIG. 2A illustrates an embodiment of a masking tool operating in accordance with the invention.

FIG. 2B illustrates another embodiment of a masking tool operating in accordance with the invention.

FIG. 2C illustrates another embodiment of a masking tool operating in accordance with the invention.

FIG. 3 illustrates an exemplary embodiment of a selection process for the masking tool of FIGS. 2A-2C.

FIG. 4 illustrates an exemplary embodiment of a customization process for the masking tool of FIGS. 2A-2C.

FIG. 5 illustrates a flow diagram of one embodiment.

DETAILED DESCRIPTION

In the following detailed description of the embodiments of the invention, references are made to the accompanying drawings in which like references indicate similar elements, in which, is shown by way of illustration of specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.

A. General System Architecture

Beginning with an overview of the operation of the invention, FIG. 1A illustrates a system 100 which can control the effects of image manipulation according to one embodiment of the present invention. System 100 includes server 101 and one or more clients 103. Stored in memory resident within server 101, a typical software application 104 is an image-editing package adapted to manipulate images provided by client 103. The operations of software application 104 may be controlled by server 101 or through control information from client 103. Within the software application 104, an effects block 110 and a masking tool block 112 reside. These “blocks” denote a collection of one or more instructions, including but not limited to a routine, function, or any other process. The effects block 110 applies a specific effect to the image and the masking tool block 112 selectively limits the area of the image which is modified by the effects block 110.

As shown in FIG. 1B, client 103 may establish communications with server 101 through a wide area network. For instance, client 103 may communicate directly with an Internet Service Provider (ISP) that communicates with server 101.

A client 103 represents any device that may enable user's online access to information. Illustrative examples of a “client” may include, but are not limited or restricted to a digital camera, a stand-alone device to view images inclusive of a kiosk, a hand-held image viewing device (e.g., portable computer, personal digital assistant, iPOD® or other music/video/image viewing device, etc.), a camera cellular phone, and the like. In this embodiment, client 103 may provide a user interface to communicate information to the user. It should be noted that although FIG. 1A illustrates only two modules performing the above functionality, more or less modules may be used to perform this functionality.

One exemplary embodiment of client 103 is a digital camera 140 that is illustrated in FIG. 1C. For this embodiment, digital camera 140 includes a processor 150, a memory 155 and an input/output device 160 coupled to a bus 165. Input/output device 160 includes an interface to establish a wired or wireless communication path with server 101. Memory 155 is configured to store images that are captured by digital camera 140 and processed by processor 150.

Memory 155 encompasses various types of computer readable media, including any type of storage device that is accessible by processor 150. One of the skilled the art will immediately recognize that the term “computer readable media” encompasses any suitable storage medium such as a programmable electronic circuit, any type of semiconductor memory device such as a volatile memory (e.g., random access memory, etc.) or non-volatile memory (e.g., read-only memory, flash memory, etc.), a hard drive disk, or any portable storage such as a floppy diskette, an optical disk (e.g., compact disk or digital versatile disc “DVD”), memory stick, a digital tape or the like.

Of course, it is appreciated that digital camera 140 may be controlled by operating system software including instructions executed by processor and stored in internal memory. Also, software application 104 may be implemented within memory 155 or another memory component that is integrated within processor 150 or external to processor 150 in lieu of or in addition to such storage within server 101. Thus, the digital camera 140 may perform masking operations and applying effects to the image directly.

As a first illustrative example, software application 104 may be loaded into server 101 to perform the masking and application of effects on an image as described below. These masking operations are controlled by the digital camera 140. According to a second illustrative example, the software application 104 may be loaded within digital camera 140 to perform the masking and application of effects on an image, but the masking tool is fetched by digital camera 140 from memory implemented within server 101. According to a third illustrative embodiment, a high-resolution image targeted for manipulation is loaded on server 101 while a low-resolution image loaded in digital camera 140. In response to selected operations on the low-resolution image, corresponding operations are performed on the high-resolution image.

B. Embodiments of the Masking Tool

FIG. 2A illustrates a first embodiment of a masking tool as described in block 112 of FIG. 1A. Display 200 represents a sample screen while utilizing the software application 104 (FIG. 1A). A masking tool 210 is shown on the display 200, where masking tool 210 features one or more graphical representations. These graphical representations may be have a predetermined shape and size and/or may be set by the user to produce a customizable graphical representation. The predetermined forms of masking tool 210 may be preloaded into the digital camera during manufacturer or downloaded from a source over a network connection. The customized graphical representations of masking tool 210 may be stored within digital camera upon completion by the user, and may be transmitted to the server 101 for storage.

For instance, as shown in FIG. 2A, the embodiment of masking tool 210 is translucent and is defined by the clear outline. The masking tool 210 allows a selective application effects from the effects block 110 (FIG. 1A) by moving the masking tool 210 with respect to a static image as shown on the display 200. The portion of the static image as shown on the display 200 which is within the masking tool 210 is not modified by the application of the effects. This static image may be still image or an image from a video stream.

Furthermore, the masking tool 210 is capable of being dynamically moved with respect to the static image during the application of the effects. This allows the user to selectively apply the effect by interactively moving the mask tool simultaneously while applying the effect.

Another embodiment includes a masking tool that is able to interact directly with a localized image editing operation. For example, the masking tool may become entirely transparent in the immediate area where a user is currently applying an image effect. This allows the user to see the entire area that is mask without a mask or line obstructing the immediate work area.

FIG. 2B illustrates a second embodiment of masking tool 215 represented on display 200. Masking tool 215 shows the portion within masking tool 215 to have a cross-hatched shading. Any type of shading can be utilized to illustrate the portion within the masking tool.

FIG. 2C illustrates a third embodiment of the masking tool represented on display 200. According to this embodiment, the shape of the masking tool can be easily created and modified. For example, within the display 200 there are a first masking tool 220, a second masking tool 230 and a third masking tool 240. Each of the first, second and third masking tools (220, 230, and 240) have differing sizes and may function independently or may be combined to form a single masking tool. Naturally, this specific example utilizes three portions to form independent or combined masking tools and any number of portions may be utilized to accomplish the same.

Like masking tools that take different sizes, masking tools may also take any multitude of shapes. The masking tools may simulate the use of a fixed edge such as a French Curve. The shape of the mask tool is infinitely changeable. Furthermore, the user may mask as much area of the image as desired and perform a global image effect on the entire image while protecting portions of the image from the image effects with the masking tools.

FIG. 3 illustrates an exemplary embodiment of a screen display 300 featuring icons 310 representing various shapes for the masking tool. According to this embodiment, upon execution, a masking tool 320 is selected from icons 310 corresponding to a plurality of masking tool with graphical representations, namely different fixed shapes and sizes. Such selection may be accomplished by cycling through a series of masking tool icons 310 displayed on screen display 320 of a digital camera 330 using at least one control button 340 of digital camera 330. Alternatively, although not shown, such selection may be accomplished through a menu displayed on screen display 300 of digital camera 330, where the menu illustrates images or lists textual descriptions of the plurality of masking tool types. The selection of the menu entry is also controlled by control button(s) 340.

FIG. 4 illustrates an exemplary embodiment of customization of the masking tool is shown. Display 200 of client 103 features an image 400. Using a stylus 410, for example, a pattern 420 is traced over image 400 illustrated by display 200. Upon completion of an enclosed pattern, a determination is made whether the area within the enclosed pattern 420 is selected to be the masking tool, illustrated in a transparent form, or whether the area outside the enclosed pattern 420 constitutes the masking tool. For instance, upon touching stylus 410 within a first area 430, namely the area within enclosed pattern 420 is considered to be the masking tool. As a result, when applied, an effect will be applied to the portion of image 400 outside first area 430 while no effect is applied inside first area 430 outlined by the masking tool. The transparent nature of the masking tool allows the user to see the lack of effects applied to the masked area. However, upon touching the stylus within a second area 440, namely the area outside enclosed pattern 420, any effect will be applied to the portion of image 400 inside first area 430 because the masking tool now covers second area 440.

C. Operations of the Masking Tool

FIG. 5 illustrates a flow diagram. At block 500, the application software 104 (FIG. 1A) is initiated. The user may build, create, and/or modify the shape and size of the masking tool in Block 510. The user may position the masking tool relative to the static image (Block 510). The user may position the masking tool relative to the static image (Block 520). The user may apply the image effect selectively to the image that is not masked by the masking tool (Block 530). The user may dynamically reposition the masking tool while simultaneously applying the image effect (Block 540).

Although specific embodiments have been illustrated and described herein, will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for specific embodiments shown. This application is intended to cover any of the adaptations of variations of the present invention.

The terminology used in this application with respect to network architecture is meant to include all client/server environments. Therefore it is manifestly intended that this invention be limited only by the following claims and equivalents thereof. 

1. A system for controlling effects performed on an image, comprising: a digital camera having a display that displays the image; and a masking tool to position a graphical representation on the display, the graphical representation defining a portion of the image that is altered when the effects are subsequently applied to the image.
 2. The system according to claim 1 further comprising a server implemented with a software that, when executed, performs masking according to the graphical representation on the display and then application of the effects on the image.
 3. The system according to claim 1 further comprising a server to store a software application downloaded by the digital camera to perform masking and application of the effects to the image.
 4. The system according to claim 1 further comprising a server that applies the effects to the image using a first resolution and the display that displays the image using a second resolution, wherein the effects applied to the displayed image using the second resolution is correspondingly performed by the server on the image using the first resolution.
 5. The system according to claim 4, wherein the first resolution being a higher resolution than the second resolution.
 6. The system according to claim 1 wherein the masking tool is further to select the shape of the graphical representation on the display by cycling through a series of shape icons displayed on the display.
 7. The system according to claim 1 wherein the graphical representation is created by tracing a pattern over at least a portion of the display using a stylus.
 8. The system according to claim 1 wherein an area inside the graphical representation is altered when the effects are applied to the image.
 9. The system according to claim 1 wherein an area outside the graphical representation is altered when the effects are applied to the image.
 10. The system according to claim 1 wherein masking tool is further to adjust the size of the graphical representation on the display.
 11. The system according to claim 1 wherein the graphical representation is movable relative to the image.
 12. A method of masking comprising: selecting a masking tool based on operations performed on a digital camera; positioning the masking tool over a masked portion of an image; and subsequently applying an effect onto the image outside the masked portion.
 13. The method according to claim 12 wherein the selecting of the masking tool includes cycling through a series of masking tool icons displayed on a display of the digital camera, each masking tool icon representing a different shape for the masking tool.
 14. The method according to claim 12 wherein the masking tool is translucent.
 15. The method according to claim 12 wherein the positioning of the masking tool includes positioning the masking tool over the masked portion of the image displayed on the digital camera, the image having a first resolution.
 16. The method according to claim 15 wherein the applying of the effect includes applying the effect on the image having the first resolution that applies a corresponding effect on an image having the second resolution stored on a server in communication with the camera.
 17. The method according to claim 16, wherein the first resolution being a lower resolution than the second resolution.
 18. A system comprising: a server; and a client in communication with the server, the client being adapted to edit an image stored on the server by controlling a position of a graphical representation on a display that displays the image, the masking tool defining a portion of the image precluded from being altered when an effect is subsequently applied to the image.
 19. The system according to claim 18 further comprising a server implemented with a software that, when executed, performs masking and application of the effect on the image.
 20. The system according to claim 18, wherein the server is loaded with the image having a first resolution level and the client being loaded with the image having a second resolution level lesser in resolution that the first resolution level, wherein the effect applied to the image having the second resolution level under control of the client causes a corresponding effect to be performed by the server on the image having the first resolution level. 